class Cadastro::Contato::EnderecosController < ApplicationController
  # GET /endereco
  # GET /endereco.xml
  def index
    @enderecos = Endereco.find(:all).paginate :page => params[:pagina], :per_page => 15
    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @enderecos }
    end
  end

  # GET /endereco/1
  # GET /endereco/1.xml
  def show
    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @endereco }
    end
  end

  # GET /endereco/new
  # GET /endereco/new.xml
  def new
    @endereco = Endereco.new
    @tipo_endereco = TipoEndereco.new
    @logradouro = Logradouro.new
    @bairro = Bairro.new
    @localidade = Localidade.new
    @unidade_federacao = UnidadeFederacao.new
    @federacao = Federacao.new
    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @endereco }
    end
  end

  # GET /endereco/buscar_endereco_por_cep
  def buscar_por_cep
    @federacao = LogLogradouro.pesquisar_por_cep(params[:logradouro][:cep])
    if not @federacao.nil?
      @federacao.unidade_federacaos.each do |@unidade_federacao|
        @unidade_federacao.localidades.each do |@localidade|
          @localidade.bairros.each do |@bairro|
            @bairro.logradouros.each do |@logradouro|
              @tipo_logradouro = @logradouro.tipo_logradouro
            end
          end
        end
      end
      @endereco = Endereco.new
      render :partial => 'endereco_form', :object => [@federacao, @unidade_federacao, @localidade, @bairro, @logradouro, @tipo_logradouro, @endereco]
    else
      render :text => "CEP " + params[:logradouro][:cep] + " não localizado."
    end
  end

  # GET /endereco/1/edit
  def edit
    @endereco = Endereco.find(params[:id])
  end

  # POST /endereco
  # POST /endereco.xml
  def create
    #@endereco = Endereco.new(params[:endereco])
    @federacao = Federacao.criar_federacao(params[:federacao])
    respond_to do |format|
      if not @federacao.nil?
        flash[:success] = 'Federação criada com sucesso.'
        format.html { redirect_to(@endereco) }
        format.xml  { render :xml => @endereco, :status => :created, :location => @endereco }
      else
        flash[:error] = 'Federação  não pode ser criada.'
        format.html { render :action => "new" }
        format.xml  { render :xml => @endereco.errors, :status => :unprocessable_entity }
      end
    end

=begin
      if @endereco.save
        flash[:notice] = 'Endereco was successfully created.'
        format.html { redirect_to(@endereco) }
        format.xml  { render :xml => @endereco, :status => :created, :location => @endereco }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @endereco.errors, :status => :unprocessable_entity }
      end
=end

  end

  # PUT /endereco/1
  # PUT /endereco/1.xml
  def update
    @endereco = Endereco.find(params[:id])
    respond_to do |format|
      if @endereco.update_attributes(params[:endereco])
        flash[:success] = 'Endereco was successfully updated.'
        format.html { redirect_to(@endereco) }
        format.xml  { head :ok }
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @endereco.errors, :status => :unprocessable_entity }
      end
    end
  end

  # DELETE /endereco/1
  # DELETE /endereco/1.xml
  def destroy
    @endereco = Endereco.find(params[:id])
    @endereco.destroy
    respond_to do |format|
      format.html { redirect_to(endereco_url) }
      format.xml  { head :ok }
    end
  end
end